#pragma once

#ifndef _DROPLET_SIM_GLOBALS
#define _DROPLET_SIM_GLOBALS

#ifdef _WIN32
#include "inttypes.h"
#elif
#include <inttypes.h>
#endif

// Turn Directions
#define TURN_CLOCKWISE 0
#define TURN_COUNTERCLOCKWISE 1
typedef uint8_t turn_direction;

// Move directions
#define NORTH 0
#define NORTH_EAST 1
#define SOUTH_EAST 2
#define SOUTH 3
#define SOUTH_WEST 4
#define NORTH_WEST 5
typedef uint8_t move_direction;

// Boolean return type
#define FALSE (uint8_t)0
#define TRUE (uint8_t)1

// Simulation Constants
#define DEFAULT_SIM_TIMESTEP 0.05 // 50 milliseconds

// Droplet Constants
#define DEFAULT_DROPLET_SPEED 0.01 // 1 cm/s = 0.01 m/s
#define SIN_DEFAULT_DROPLET_SPEED 0.005 // Sin(PI/3) : 0.5 cm/s = 0.005 m/s
#define COS_DEFAULT_DROPLET_SPEED 0.00866 // Cos(PI/3) : 0.866 cm/s = 0.00866 m/s

#endif